package com.caijg.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.caijg.model.dto.UserMessageDTO;
import com.caijg.model.entity.Chat;
import com.caijg.model.vo.resp.Result;
import org.springframework.ai.chat.messages.Message;

import java.util.List;

/**
 * <p>
 * 对话表 服务类
 * </p>
 *
 * @author caijg
 * @since 2025-05-07
 */
public interface IChatService extends IService<Chat> {

    /**
     * 对话接口
     * 根据用户提问的问题返回生成的内容
     * @param userMessageDTO 用户提问的问题
     * @return 返回大模型生成的内容
     */
    Result chat(UserMessageDTO userMessageDTO);

    /**
     * 获取单个对话历史记录
     * @param chat 对话信息
     * @return 对话历史记录
     */
    List<Message> getChatHistory(Chat chat);

    /**
     * 获取对话列表历史
     * @param userId 用户id
     * @return 对话历史记录
     */
    Result history(String userId);

    /**
     * 获取单个对话历史记录
     * @param sessionId 会话id
     * @return 对话历史记录
     */
    Result messages(String sessionId);

    /**
     * 删除对话
     * @param sessionId 会话id
     * @return 删除结果
     */
    Result delete(String sessionId);
}
